<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>vue3-element-admin</title>
    <style>
        /* 基础样式重置 */
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
        }

        /* 页面基础样式 */
        body {
            min-height: 100vh;
            background: linear-gradient(135deg, #f0f9ff 0%, #e6f7ff 100%);
            color: #333;
            line-height: 1.6;
            overflow-x: hidden;
        }

        /* 顶部装饰条 */
        .top-bar {
            height: 4px;
            background: linear-gradient(90deg, #4285f4, #34a853, #fbbc05, #ea4335);
        }

        /* 主容器 */
        .container {
            max-width: 850px;
            margin: 0 auto;
            padding: 2rem 1rem;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            min-height: calc(100vh - 100px);
            position: relative;
        }

        /* 背景装饰 */
        .bg-decoration {
            position: absolute;
            border-radius: 50%;
            filter: blur(70px);
            opacity: 0.2;
        }

        .bg-1 {
            width: 400px;
            height: 400px;
            background: #4285f4;
            top: -100px;
            left: -100px;
            animation: pulse 15s infinite;
        }

        .bg-2 {
            width: 500px;
            height: 500px;
            background: #34a853;
            bottom: -150px;
            right: -150px;
            animation: pulse 18s infinite 2s;
        }

        @keyframes pulse {
            0% { transform: scale(1); }
            50% { transform: scale(1.2); }
            100% { transform: scale(1); }
        }

        /* 欢迎图标 */
        .welcome-icon {
            width: 120px;
            height: 120px;
            border-radius: 50%;
            background: linear-gradient(135deg, #4285f4, #34a853);
            display: flex;
            align-items: center;
            justify-content: center;
            margin-bottom: 2rem;
            box-shadow: 0 10px 30px rgba(66, 133, 244, 0.3);
            animation: float 6s ease-in-out infinite;
        }

        @keyframes float {
            0% { transform: translateY(0px); }
            50% { transform: translateY(-15px); }
            100% { transform: translateY(0px); }
        }

        .welcome-icon::before {
            content: "✨";
            font-size: 48px;
        }

        /* 动态文本容器 */
        .text-container {
            position: relative;
            overflow: hidden;
            margin-bottom: 1rem;
        }

        /* 欢迎标题 - 逐字动画 */
        h1 {
            font-size: clamp(2rem, 5vw, 3.5rem);
            font-weight: 700;
            text-align: center;
            color: #202124;
            text-shadow: 0 2px 4px rgba(0,0,0,0.05);
            opacity: 0;
            animation: fadeIn 1s forwards 0.5s;
        }

        .char {
            display: inline-block;
            opacity: 0;
            transform: translateY(20px);
            animation: charFadeIn 0.5s forwards;
        }

        @keyframes charFadeIn {
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        @keyframes fadeIn {
            to {
                opacity: 1;
            }
        }

        /* 副标题 - 打字机效果 */
        p {
            font-size: clamp(1rem, 2vw, 1.25rem);
            color: #5f6368;
            text-align: center;
            max-width: 600px;
            margin-bottom: 2.5rem;
            opacity: 0;
            animation: fadeIn 1s forwards 1s;
            position: relative;
        }

        p::after {
            content: "|";
            position: absolute;
            right: -10px;
            animation: blink 1s step-end infinite;
        }

        @keyframes blink {
            from, to { opacity: 1; }
            50% { opacity: 0; }
        }

        /* 按钮样式 */
        .button-group {
            display: flex;
            flex-wrap: wrap;
            gap: 1rem;
            justify-content: center;
            opacity: 0;
            animation: fadeIn 1s forwards 1.5s;
        }

        .btn {
            padding: 0.875rem 2rem;
            border-radius: 999px;
            font-weight: 500;
            font-size: 1rem;
            cursor: pointer;
            transition: all 0.3s ease;
            text-decoration: none;
            display: inline-block;
            text-align: center;
            position: relative;
            overflow: hidden;
        }

        .btn::before {
            content: '';
            position: absolute;
            top: 0;
            left: -100%;
            width: 100%;
            height: 100%;
            background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
            transition: all 0.6s ease;
        }

        .btn:hover::before {
            left: 100%;
        }

        .btn-primary {
            background-color: #4285f4;
            color: white;
            border: none;
            box-shadow: 0 4px 14px rgba(66, 133, 244, 0.3);
        }

        .btn-primary:hover {
            background-color: #3367d6;
            transform: translateY(-3px);
            box-shadow: 0 6px 16px rgba(66, 133, 244, 0.4);
        }

        .btn-secondary {
            background-color: white;
            color: #202124;
            border: 1px solid #dadce0;
        }

        .btn-secondary:hover {
            background-color: #f8f9fa;
            transform: translateY(-3px);
            box-shadow: 0 2px 8px rgba(0,0,0,0.1);
        }

        /* 页脚样式 */
        footer {
            text-align: center;
            padding: 1.5rem;
            color: #5f6368;
            font-size: 0.875rem;
            border-top: 1px solid #eee;
            opacity: 0;
            animation: fadeIn 1s forwards 2s;
        }

        /* 响应式调整 */
        @media (max-width: 600px) {
            .button-group {
                flex-direction: column;
                width: 100%;
                max-width: 300px;
            }

            .btn {
                width: 100%;
            }
        }
    </style>
</head>
<body>
    <!-- 顶部装饰条 -->
    <div class="top-bar"></div>

    <!-- 主内容区 -->
    <div class="container">
        <!-- 背景装饰 -->
        <div class="bg-decoration bg-1"></div>
        <div class="bg-decoration bg-2"></div>

        <!-- 欢迎图标 -->
        <div class="welcome-icon"></div>

        <!-- 欢迎信息 - 带动态效果 -->
        <div class="text-container">
            <h1 id="welcome-title">欢迎迈入 vue3-element-admin</h1>
        </div>
        <p id="subtitle">在这里，每一次停留都是与前沿体验的深度对话</p>

        <!-- 行动按钮 -->
        <div class="button-group">
            <div class="btn btn-primary">开始探索</div>
            <div class="btn btn-secondary">了解更多</div>
        </div>
    </div>

    <!-- 页脚 -->
    <footer>
        © 2023 数字新境 | 设计与开发
    </footer>

    <script>
        // 实现文字逐字显示动画
        document.addEventListener('DOMContentLoaded', function() {
            const title = document.getElementById('welcome-title');
            const text = title.textContent;
            title.textContent = '';

            // 将每个字符包裹在span中
            for (let i = 0; i < text.length; i++) {
                const span = document.createElement('span');
                span.className = 'char';
                span.textContent = text[i];
                span.style.animationDelay = (0.5 + i * 0.1) + 's';
                title.appendChild(span);
            }

            // 实现打字机效果
            const subtitle = document.getElementById('subtitle');
            const subtitleText = subtitle.textContent;
            subtitle.textContent = '';
            let i = 0;

            function typeWriter() {
                if (i < subtitleText.length) {
                    subtitle.textContent += subtitleText.charAt(i);
                    i++;
                    setTimeout(typeWriter, 50);
                }
            }

            // 延迟开始打字机效果
            setTimeout(typeWriter, 1500);
        });
    </script>
</body>
</html>
